package com.education.platform.dto.order;

import lombok.Data;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.time.LocalDate;
import java.util.List;

/**
 * 创建订单DTO
 */
@Data
public class CreateOrderDTO {

    /**
     * 教员ID
     */
    @NotNull(message = "教员ID不能为空")
    private Long teacherId;

    /**
     * 科目
     */
    @NotBlank(message = "科目不能为空")
    private String subject;

    /**
     * 年级
     */
    private String grade;

    /**
     * 授课方式：ONLINE-线上, OFFLINE-线下, BOTH-都可以
     */
    @NotBlank(message = "授课方式不能为空")
    private String teachingType;

    /**
     * 总课时
     */
    @NotNull(message = "总课时不能为空")
    private Integer totalHours;

    /**
     * 开始日期
     */
    @NotNull(message = "开始日期不能为空")
    private LocalDate startDate;

    /**
     * 结束日期
     */
    private LocalDate endDate;

    /**
     * 上课地址（线下授课必填）
     */
    private String address;

    /**
     * 上课时间安排
     */
    private List<ScheduleItem> schedule;

    /**
     * 特殊要求
     */
    private String requirements;

    /**
     * 联系电话
     */
    private String contactPhone;

    /**
     * 学生姓名
     */
    private String studentName;

    @Data
    public static class ScheduleItem {
        /**
         * 星期几（1-7）
         */
        private Integer dayOfWeek;

        /**
         * 开始时间（HH:mm）
         */
        private String startTime;

        /**
         * 结束时间（HH:mm）
         */
        private String endTime;
    }
}

